/*
* Copyright (c) 2024 China Unicom Digital Technology Co., Ltd.
* openFuyao is licensed under Mulan PSL v2.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
*          http://license.coscl.org.cn/MulanPSL2
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PSL v2 for more details.
* Author: YuXiang Guo
* Date: 2024-11-25
 */

package gpu

import (
	"testing"

	"github.com/stretchr/testify/assert"

	"openfuyao.com/colocation-management/pkg/colocation-overquota-agent/nriserver/core"
	"openfuyao.com/colocation-management/pkg/common"
	"openfuyao.com/colocation-management/pkg/utils"
)

func TestSetGpu(t *testing.T) {
	info := core.ContainerInfo{
		ContainerRequest: core.ContainerRequest{
			PodSandboxConfig: utils.PodSandboxConfig{
				Annotations: map[string]string{
					common.GPUInstanceAnnotation: "1,2,3",
				},
			},
		},
	}

	err := NewGpuRunner().SetGpu(&info)
	assert.NoError(t, err)
	expect := map[string]string{
		NvidiaDevices: "1,2,3",
	}
	if info.ContainerResponese.AddContainerEnvs[NvidiaDevices] != expect[NvidiaDevices] {
		t.Errorf("Expected  to be %v, got %v", "1,2,3", info.ContainerResponese.AddContainerEnvs[NvidiaDevices])

	}

}
